export interface IOrg {
  code?: string
  orgCode?: string
  orgType?: string
  isVirtualDept?: 0 | 1
  orgFullName?: string
  orgShortName?: string
  enterpriseType?: string
  regType?: string
  uscc?: string
  icRegNo?: string
  nOrgCode?: string
  vatNo?: string
  otherIdNo?: string
  country?: string
  province?: string
  city?: string
  town?: string
  legalRep?: string
  regAddress?: string
  postalCode?: string
  upperMgrUnit?: string
  mgrPriox?: string
  directEnterprise?: string
  equityType?: string
  operationStatus?: string
  upperHrUnit?: string
  hrPriox?: string
  upperEquityUnit?: string
  equityPriox?: string
  stockholderName?: string
  stockholderCategory?: string
  stockholderType?: string
  shareholdingRatio?: string
  hierarchyLevel?: number
  isLeaf?: 0 | 1
  parentId?: string | null
  fullCodePath?: string
  fullNamePath?: string
  remark?: string
  [key: string]: any
}

export interface POrgLoad {
  code?: string
  name?: string
  orgCode?: string
  parentCode?: string
  keyword?: string
  isTree?: number
  loadType?: number
  label?: string
}

export interface PList {
  unitId?: string
  orgId?: string
  orgCode?: string
  pageSize?: number
  current?: number
  page?: number
  code?: string
  name?: string
  status?: number
  createTime?: string
  createBy?: string
  size?: number
  startDate?: string
  endDate?: string
  startTime?: string
  endTime?: string
}

export interface ITablePagination {
  total: number
  records: IOrg[]
}

export interface IError {
  error?: string
  message?: string
  [key: string]: any
}

interface InfoFields {
  basicInfo: Record<string, any>
  codeInfo: Record<string, any>
  geoInfo: Record<string, any>
  regInfo: Record<string, any>
  mgmtInfo: Record<string, any>
  hrInfo: Record<string, any>
  shareholderInfo: Record<string, any>
  [key: string]: any
}

export interface IFormToken {
  org: InfoFields
  [key: string]: any
}

export interface ITreeNode {
  [key: string]: any
}

export interface IOrgBizType {
  code: string
  name?: string
  path?: string
  remark?: string
}

export interface IOrgMgmt {
  code: string
  name?: string
  unitId?: string
  remark?: string
}
